{"text_format":"1","workbook":"xlsx","n_sheets":3,"sheets":["Feuil1","Test des fonctions VBA","Test des fn VBA avec boucles"],"not_rendered":{"charts":0,"images":5,"macros":1,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Feuil1","index":0,"n_rows":5,"n_cols":4,"rows_kept":5,"cut":false,"hidden":false,"merged":[]}
[1,null,"2024-10-01",1000]
[2,null,"2024-11-01",1100]
[3,null,"2024-12-01",1200]
[null,null,"2025-01-01",1300]
[null,null,"2025-02-01",1400]

{"sheet":"Test des fonctions VBA","index":1,"n_rows":50,"n_cols":11,"rows_kept":50,"cut":false,"hidden":false,"merged":[]}
["Taux continu :"]
[null,"rm=",0.09]
[null,"m=",4]
[null,"rc=",{"$f":"tauxContinu(C2,C3)","v":8.9002435739278893E-2}]
[]
["Taux discret :"]
[null,"rc=",{"$f":"C4","v":8.9002435739278893E-2}]
[null,"m=",{"$f":"C3","v":4}]
[null,"rm=",{"$f":"tauxDiscret(C7,C8)","v":8.9999999999999858E-2}]
[]
[]
["Courbe des taux  :"]
[]
[null,"yield curve data  03 October 2024"]
[null,"Yields in percentages per annum."]
[]
[]
[null,"Parameters - AAA-rated bonds"]
[null,"Parameters","3 October 2024"]
[null,"BETA0",0.57070699999999996]
[null,"BETA1",2.9512109999999998]
[null,"BETA2",0.40084999999999998]
[null,"BETA3",6.3015030000000003]
[null,"TAU1",0.631413]
[null,"TAU2",12.490281]
[]
[null,null,"Terme","Taux BCE",null,"q","Calcul NelsonSeigelSvensson",null,"Mois","df","Calcul NelsonSeigelSvenssonDate"]
[null,"q=0,25","SR_3M ",3.1311580000000001,null,{"$f":"(ROW()-ROW($F$27)+2)/12","v":0.25},{"$f":"NSS(F28,$C$20,$C$21,$C$22,$C$23,$C$24,$C$25)","v":3.1311582703787395},null,3,{"$f":"EDATE(TODAY(),I28)","v":"2025-02-03"},{"$f":"NSSDate(J28,$C$20,$C$21,$C$22,$C$23,$C$24,$C$25)","v":3.1283363215233426}]
[null,"q=0,5","SR_6M ",2.827448,null,0.5,{"$f":"NSS(F29,$C$20,$C$21,$C$22,$C$23,$C$24,$C$25)","v":2.8274475147093607},null,6,{"$f":"EDATE(TODAY(),I29)","v":"2025-05-03"},{"$f":"NSSDate(J29,$C$20,$C$21,$C$22,$C$23,$C$24,$C$25)","v":2.8318433408554591}]
[null,"q=0,75","SR_9M ",2.5919189999999999,null,{"$f":"3/4","v":0.75},2.5919187953142293,null,9,{"$f":"EDATE(TODAY(),I30)","v":"2025-08-03"},2.5936190160074482]
[null,"q=1","SR_1Y ",2.4098519999999999,null,1,2.4098516867932989,null,12,{"$f":"EDATE(TODAY(),I31)","v":"2025-11-03"},2.4098516867932989]
[null,"q=2","SR_2Y",2.0212889999999999,null,2,2.0212890544750826,null,24,{"$f":"EDATE(TODAY(),I32)","v":"2026-11-03"},2.0216664192306677]
[]
[null,"Taux forward",null,"x=1"]
[null,null,"f(x=1,y=2) =",{"$f":"taux_forward(F31,F32,D31,D32)","v":1.677003934927674}]
[]
["Options par méthode de Black et Scholes"]
[]
[null,"S= 50"]
[null,"X= 50"]
[null,"T= 1"]
[null,"r= 0,1"]
[null,"s=0,2"]
[null,"d1 = 0,6"]
[null,"d2 = 0,4"]
[null,"C = 6,635"]
[null,"P = 1,877"]
[]
["Call  =",{"$f":"CallBS(50,50,1,0.1,0.2)","v":6.6348382923304463}]
["Put =",{"$f":"PutBS(50,50,1,0.1,0.2)","v":1.87670919412842}]

{"sheet":"Test des fn VBA avec boucles","index":2,"n_rows":92,"n_cols":3,"rows_kept":92,"cut":false,"hidden":false,"merged":[[9,0,9,1],[10,0,10,1]]}
["1 / Créez une macro-commande qui calcule le prix d’un Bon du trésor à Moyen Terme Négociable (BTMN) selon la formule suivante (Source J.F. Lemettre, cours Aunege Marchés financiers) "]
[]
[]
["Les paramètres de votre macro seront la date de cession, la date d’échéance, le montant K, les taux TF et TA."]
["La base annuelle sera déterminée par la présence ou pas d’un 29 février entre la date de cession et celle du prochain coupon."]
[]
["Données d’exemple :"]
["Cession",null,"2012-11-02"]
["Échéance",null,"2014-12-31"]
["Prochain coupon",null,"2012-12-31"]
[" ðNombre de jours:",null,59]
["ð A :",null,2]
["K :",null,1000000]
["TF:",null,4.4999999999999998E-2]
["TA :",null,0.05]
[]
["M =",null,1027566.87]
["Appel de la fonction VBA BTMN(dateCession As Date, dateEcheance As Date, K As Double, TF As Double, TA As Double)",null,{"$f":"BTMN(C8,C9,C13,C14,C15)","v":1027566.8679495496}]
[]
["2 / Créez une macro-fonction  programmant le calcul du Taux Annuel Monétaire (TAM) à partir d’un tableau formé des 12 dernières valeurs du T4M (Taux Moyen Mensuel du Marché Monétaire) et de la date courante. Nous considèrerons que la première valeur du T4M correspond au mois précédant celui de la date courante."]
["Le Taux Annuel Monétaire (TAM)  (d’après  J.F. Lemettre, cours Aunege Marchés financiers) "]
["C’est un taux actuariels dont la période de capitalisation utilisée est la capitalisation mensuelle. Ce taux sert de référence à la rémunération de titres à taux variable (notamment des obligations)."]
["C’est le taux de rendement annuel d’un placement mensuel renouvelé chaque mois pendant les 12 mois précédant la date de référence."]
["Appelons T4Mj le taux mensuel moyen du mois j et qJ le nombre de jours de ce mois. Le T4M est la moyenne arithmétique des TMP de chaque jour du mois. Pour le mois M, le taux annuel monétaire est :"]
[]
[]
[]
[]
["Exemple de calcul du TAM :"]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
["Test de la fonction : ici de légères variation du résultat du fait de qj différents :",{"$f":"testeTAM()","v":1.9603089844044908E-2}]
[]
["3 / Créez une macro-fonction qui calcule la volatilité historique d’une série boursière dont les rentabilités rt mesurées au cours de chaque séances sont passées en paramètres sous la forme d’une plage de cellules. Nous considérerons qu’il y a 252 séances dans l’année."]
["La volatilité d'une période élémentaire (en général quotidienne) est mesurée sous la forme d’un écart-type sur échantillon des rentabilités."]
["En appelant μt la moyenne des n dernières valeurs de rt, la variance est obtenue par :"]
[]
[]
[]
[]
["Si les observations sont, par exemple, les cours de clôture quotidiens, le nombre moyen de jours ouvrés dans l'année étant de 252, il convient de multiplier la variance par D = 252. La volatilité annuelle est alors :"]
[]
[]
[]
[]
[null,"Rentabilités"]
[null,0.21294079973737201]
[null,0.84815996843319508]
[null,0.52208058569022808]
[null,0.74375591032608512]
[null,0.67689576220573289]
[null,0.42605329001817915]
[null,0.34186902835858157]
[null,0.36399516807868337]
[null,0.80603479407312451]
[]
["Test de la fonction VBA volatilitéHistorique(rentabilités As Range)",{"$f":"volatilitéHistorique1(B62:B70)","v":3.6188875720338602}]
["Test de la fonction VBA volatilitéHistorique2(rentabilités As Range)",{"$f":"volatilitéHistorique3(B62:B70)","v":3.618887572033866}]
[]
[]
["4 / A partir d'une date de référence, d'un ensemble de dates et de flux produits, ainsi que des paramètres d'une courbe des taux, construisez une fonction qui calcule la duration de Fisher-Weil d'une obligation en utilisant la fonction créée d'après la formule de Nelson Siegel Svensson élaborée dans un exercice précédent."]
[]
["Paramètres de la courbe des taux au 03/10/2024","Series key"," Parameters"]
[null,"BETA0",0.57070699999999996]
[null,"BETA1",2.9512109999999998]
[null,"BETA2",0.40084999999999998]
[null,"BETA3",6.3015030000000003]
[null,"TAU1",0.631413]
[null,"TAU2",12.490281]
[]
["Tableau des flux d'une obligation","Date","Maturité"]
[null,{"$f":"DATE(YEAR(TODAY())+1,MONTH(TODAY()),DAY(TODAY()))","v":"2025-11-03"},100]
[null,{"$f":"DATE(YEAR(TODAY())+2,MONTH(TODAY()),DAY(TODAY()))","v":"2026-11-03"},100]
[null,{"$f":"DATE(YEAR(TODAY())+3,MONTH(TODAY()),DAY(TODAY()))","v":"2027-11-03"},1100]
[]
[]
["Appel de la fonction durationFisherWeill(flux As Range, dates As Range, beta0 As Double, beta1 As Double, beta2 As Double, beta3 As Double, tau1 As Double, tau2 As Double)",{"$f":"durationFisherWeill2(B87:B89,C87:C89,C79,C80,C81,C82,C83,C84)","v":2.761812908069309}]